package code12._type;

import java.util.Arrays;
import java.util.Random;

import org.junit.Test;

public class TestInter {
	@Test
	public void f1() {
		Random r = new Random();
		Product2[] arr = new Product2[5];
		for (int i = 0; i < arr.length; i++) {
			Product2 p = new Product2();
			// 随机价格
			p.price = r.nextInt(101);
			arr[i] = p;
		}
		// 排序:对对象数值进行排序, 对象必须可被比较，即类必须实现 java.lang.Comparable<T>
		Arrays.sort(arr);
		
		for (Product2 p : arr) {
			System.out.println(p);
		}
	}
	
}
class Product2 implements Comparable<Product2> {
	public int price;
	@Override
	public String toString() {
		return "Product2 [price=" + price + "]";
	}
	@Override
	public int compareTo(Product2 o) {
		// 当前的 大于 参数, 返回 >0 的值
		// 当前的 小于 参数, 返回 <0 的值
		// 当前的 等于 参数, 返回 0
		// 设置自己的比较规则: 当前的 减 参数 是升序; 参数 减 当前的 是降序
		//return this.price - o.price;// 升序
		return o.price - this.price;// 降序
	}
}
class Stu implements Comparable<Stu> {
	public int id;
	@Override
	public String toString() {
		return "Stu [id=" + id + "]";
	}
	@Override
	public int compareTo(Stu o) {
		return this.id - o.id;// 升序
	}
}